package com.itheima.controller;

import com.itheima.pojo.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {
//    @RequestMapping(value = "/sayhello",method = RequestMethod.GET)
    @GetMapping("/sayhello")
    public ModelAndView sayHello(ModelAndView modelAndView){

//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址
        modelAndView.addObject("msg","我是userController的sayhello get");
        modelAndView.setViewName("result");

        return modelAndView;
    }

//    @RequestMapping(value = "/sayhello",method = RequestMethod.POST)
    @PostMapping("/sayhello")
    public ModelAndView sayHelloew(ModelAndView modelAndView){

//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址
        modelAndView.addObject("msg","我是userController的sayhello post");
        modelAndView.setViewName("result");

        return modelAndView;
    }

    // <a href="/user/getParam1.do?id=1&name=zhangsan">get请求(参数是简单类型)</a>
     @RequestMapping("/getParam1")
    public ModelAndView getParam1(ModelAndView modelAndView, @RequestParam("id") int id, String name){


//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址

        modelAndView.addObject("msg","接收前端的数据:id:"+id+"  name:"+name);
        modelAndView.setViewName("result");

        return modelAndView;
    }

   //将参数 封装成javabean
    @RequestMapping("/getParam2")
    public ModelAndView getParam2(ModelAndView modelAndView, User user){
//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址

        modelAndView.addObject("msg","接收前端的数据:id:"+user.getId()+"  username:"+user.getUsername());
        modelAndView.setViewName("result");

        return modelAndView;
    }


    @RequestMapping("/getParam3")
    public ModelAndView getParam3(ModelAndView modelAndView, User user){
//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址

        modelAndView.addObject("msg","接收前端的数据:id:"+user.getId()+
                "  username:"+user.getUsername()+"客户的车的情况:"+user.getCar());
        modelAndView.setViewName("result");

        return modelAndView;
    }

    @RequestMapping("/getParam4")
    public ModelAndView getParam4(ModelAndView modelAndView, String[] args){
//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址

        modelAndView.addObject("msg","接收前端的数据:数组args:"+ Arrays.toString(args));
        modelAndView.setViewName("result");

        return modelAndView;
    }

//   http://localhost:8080/user/getParam5.do?args=篮球&args=足球&args=橄榄球
                //   String aa = requeset.getParamete("args")
               //   args=篮球&args=足球&args=橄榄球
    @RequestMapping("/getParam5")
    public ModelAndView getParam5(ModelAndView modelAndView, @RequestParam("args") List<String> list){
//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址

        modelAndView.addObject("msg","接收前端的数据:集合args:"+ list);
        modelAndView.setViewName("result");

        return modelAndView;
    }

     // @DateTimeFormat(pattern="yyyy-MM-dd")
    @RequestMapping("/getParam6")
    public ModelAndView getParam6(ModelAndView modelAndView, @DateTimeFormat(pattern="yyyy-MM-dd")Date birthday){
//       modelAndView  模型和视图  模型 要展示的数据 视图就是页面地址

        modelAndView.addObject("msg","接收前端的数据:生日:"+ birthday);
        modelAndView.setViewName("result");

        return modelAndView;
    }
}
